package com.crm.model.vo.customerContractManager;

import com.crm.model.entity.opportunityManager.OpportunityCollaborator;
import com.crm.model.entity.opportunityManager.OpportunityGift;
import com.crm.model.entity.opportunityManager.OpportunityProduct;
import com.crm.model.vo.activityManager.CustomerProductGiftActivityContractVO;
import com.crm.model.vo.orderManager.CustomerActivityOrderDetailEditVO;
import com.crm.model.vo.orderManager.CustomerProductOrderDetailEditVO;
import com.crm.model.vo.orderManager.CustomerProductOrderEditVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * @author luojie
 * @date 2021/3/22 15:02
 */
@Data
public class CustomerContractEditVO {

    //合同id
    private String contractId;

    //客户id
    private String customerId;

    //客户名称
    private String customerName;

    //客户类型
    private String customerType;

    //合同状态
    private String contractStatus;

    //回款状态：0-未回款；1-已回款；3-部分回款
    private String paymentStatus;

    //合同类型
    private String contractType;

    //合同开始时间
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date contractStartDate;

    //合同结束时间
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date contractEndDate;

    //回款日期
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date payBackDate;

    //合同实际总金额
    private BigDecimal contractActualTotalAmount;

    //合同续费
    private String contractRenewal;

    //会员主合同
    private String masterMembershipContract;

    //支付方式
    private String paymentMethod;

    //联系人id
    private String contactId;

    //联系人姓名
    private String contactName;

    //联系方式
    private String contactDetails;

    //客户邮箱
    private String customerEmail;

    //附件上传id
    private String contractAnnexId;

    //附件访问URl
    private String contractAnnexAccessUrl;

    //审核附件id
    private String reviewAnnexId;

    //审核附件访问URL
    private String  reviewAnnexAccessUrl;

    //合同总金额
    private BigDecimal contractTotalAmount;

    //合同优惠总金额
    private BigDecimal contractDiscountTotalAmount;

    //审核是否加盖公章
    private String applyElectronicContract;

    //商机id
    private String opportunityId;

    //跟进记录id
    private String followRecordId;

    //合同应收款
    private BigDecimal contractReceivables;

    //付款账号
    private String paymentAccount;

    //是否保密
    private String whetherKeepSecret;

    //提前/延期原因
    private String advancePostponementReason;

    //合同审核备注
    private String contractReviewNotes;

    //合同审核状态
    private String contractReviewStatus;

    //开发人员
    private List<HashMap> coDeveloperList;

    //订单
    private CustomerProductOrderEditVO productOrder;

    //订单产品列表
    private List<CustomerProductOrderDetailEditVO> productEditArr;

    //活动产品列表
    private List<CustomerActivityOrderDetailEditVO> productActivityEditArr;

    //赠品列表
    private List<CustomerProductGiftActivityContractVO> giftEditArr;

    //商机标题
    private String opportunityTitle;

    //商机跟进方式
    private Integer followWay;

    //商机跟进时间
    private Date followTm;

    //商机订单产品列表
    private List<OpportunityProduct>  opportunityProductList;

    //商机赠品列表
    private List<OpportunityGift>  opportunityGiftList;

    //商机开发协作人
    private List<OpportunityCollaborator> opportunityCollaboratorList;
}
